#ifndef _SYSTEM
#define _SYSTEM

#include "Include.h"
#include <stdio.h>
#include "Character.h"

enum ProgramState {
    MENU, RUNNING, PAUSED, EXIT
};

/**
 * System class-
 * Handles library and program initialization, basic window sizing.
 * @date 2010-10-02
 * @author Rachel
 */
class System {
private:
    int screenWidth, screenHeight, bpp;
    bool isFullscreen;
    ProgramState state;
    Event event;
public:
    RenderWindow program;

    // Init/Deinit
    System();
    ~System();
    void Initialize();

    // Object functionality
    void BeginDraw();
    void EndDraw();
    void Draw(Sprite &sprite);
    void CheckEvents();
    void HandleKeyboardInput(Character& player);
    bool Key(Key::Code code);

    // Get/Set functions
    string GetFramesPerSecond();
    
    void SetState(ProgramState val);
    ProgramState GetState();

    int GetScreenWidth() {
        return screenWidth;
    }

    int GetScreenHeight() {
        return screenHeight;
    }
};

#endif

